草庐IT

Python str 与 unicode 类型

全部标签

c# - 具有多态子对象的类型的 Json.Net 序列化

我们希望能够从/向C#类序列化/反序列化json,主类具有多态子对象的实例。使用Json.Net的TypeNameHandling.Auto设置很容易做到这一点。但是,我们希望在没有“$type”字段的情况下这样做。第一个想法是能够将“$type”重命名为我们选择的值,并使该类型的值成为一个可以正确映射子类型的枚举。我还没有将其视为一种选择,但很高兴听到它是否可行。第二个想法是沿着以下几行……下面是类的第一次传递,顶级类有一个指示符(SubTypeType),指示子对象(SubTypeData)中包含什么类型的数据。我深入研究了Json.Net文档并尝试了一些方法,但没有成功。我们目前

引用类型的 C# 7 ref 返回

我正在浏览一些使用C#7的新功能并使用reflocals&returns功能的代码。对于value-types来说,ref局部变量获取引用(对实际存储)并更新原始项的值似乎非常简单。一点解释将有助于理解在reference-types的reflocals情况下内存引用是如何工作的。我指的是下面代码的最后一行://AsimpleclasspublicclassCoolClass{publicstringName{get;set;}publicintId{get;set;}publicCoolClass(stringname,intid)=>(Name,Id)=(name,id);}//D

c# - 使用派生类型和同名 C# 覆盖属性

我试图用不同但派生类型相同的名称覆盖基类中的属性。我认为可以通过协变或泛型来实现,但我不确定该怎么做?以下代码得到错误:Error1'Sun.Cache':typemustbe'OuterSpace.Cache'tomatchoverriddenmember'OuterSpace.Cache'publicclassOuterSpace{publicvirtualOuterSpaceDataData{get;set;}publicvirtualOuterSpaceAnalysisAnalysis{get;set;}publicvirtualOuterSpaceCacheCache{get

c# - 具有泛型的对象类型中的 "apostrophe + number"是什么意思(例如 "Collection` 1")?

我有一个对象(MyObject)和一个属性(MyProperty)。我想获取它的类型名称(即String或MyClass等)。我使用:PropertyInfopropInfo=typeof(MyObject).GetProperty("MyProperty");Console.WriteLine(propInfo.PropertyType.Name);Console.WriteLine(propInfo.PropertyType.FullName);简单类型没问题,但当MyProperty是通用类型,我在获取它的名称时遇到问题(例如Collection)。它打印:Collection`

c# - 可空类型 GetType() 抛出异常

我刚刚从一个同事那里得到了这个让我发疯的测验。对于这段代码:varx=newInt32?();stringtext=x.ToString();//NoexceptionConsole.WriteLine(text);Typetype=x.GetType();//Bang!为什么第一部分.ToString()工作时没有抛出异常,然后调用GetType()抛出NullReferenceException? 最佳答案 ToString是overriddeninNullable,因此调用时不涉及装箱。GetType()不是虚方法,因此不会(

c# - 没有类型的 IEnumerable 属性

我正在尝试创建一个类似于来自MSDN的官方DataGrid.ItemsSource的属性:publicIEnumerableItemsSource{get;set;}这在任何派生类中提供了对任何类型的支持。有了这个,我可以设置类似varlist=newList>>();MyDataGrid.ItemsSource=list;但是当我尝试在没有类型T的情况下创建IEnumerable的属性时,正如MSDN所说,我在VisualStudio上收到错误:Usingthegenerictype'System.Collections.Generic.IEnumerable'requires1ty

c# - 将泛型类型参数转换为 C# 中的特定类型

如果您需要将泛型类型参数转换为特定类型,我们可以将其转换为一个对象并像下面这样进行转换:voidSomeMethod(Tt){SomeClassobj2=(SomeClass)(object)t;}有没有更好的方法来实现这一点,而不是将其强制转换为对象,然后再强制转换为特定类型?问题:我有一个接受泛型类型参数的泛型函数,在基于类型检查的函数内部我做了一些如下操作:voidSomeMethod(Tt){if(typeof(T).Equals(typeof(TypeA))){TypeA=(TypeA)(object)t;//Dosomeoperation}elseif(typeof(T).

c# - 如何将类型为 "Type"的变量传递给泛型参数

我正在尝试这样做:Typetype=Type.GetType(string.Format("Gestor.Data.Entities.{0},Gestor.Data",e.Item.Value));MetaDataUtil.GetColumnasGrid();但它不起作用,你知道我该怎么做吗? 最佳答案 你需要为此使用反射。varmethod=typeof(MetaDataUtil).GetMethod("GetColumnasGrid").MakeGenericMethod(new[]{type}).Invoke(null,nul

c# - 无法在自定义配置文件提供程序中加载类型

我正在用C#编写一个小型控制台应用程序,它引用了一个自定义程序集,该程序集实现了自定义.net配置文件提供程序。我已将以下部分添加到引用自定义类和程序集的app.config文件中。但是,当我在Debug模式下运行该应用程序时,出现以下错误,就好像它是在System.Web程序集而不是在app.config文件中指定的程序集中查找一样。无法从程序集“System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”加载类型“MyCompany.Web.User.GenericProfile”。强>我有一

c# - 与 IComparable 一起使用的可空泛型类型。可能吗?

我正在尝试创建一个简单的Clamp(以便我可以绑定(bind)任何可比较的值......主要用于数字类型,如int、double等)问题是如果我执行以下操作会出现错误,但是accordingtoMSDNIComparable的CompareTo应该能够处理空值。引述:“根据定义,任何对象比较大于null,并且两个null引用相互比较相等。”publicstaticTClamp(thisTvalue,Tmin,Tmax)whereT:IComparable{if(value.CompareTo(max)>0)returnmax;if(value.CompareTo(min)(0,9999